package cn.web.web_module.mapper;

import cn.web.web_module.entity.WebModule;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Mapper;

import java.util.ArrayList;
import java.util.List;

/**
 * (WebModule)表数据库访问层
 *
 * @author 小松
 * @since 2020-06-19 08:55:58
 */
@Mapper
public interface WebModuleMapper {

    /**
     * 通过ID查询单条数据
     *
     * @param moduleId 主键
     * @return 实例对象
     */
    WebModule queryById(Integer moduleId);

    /**
     * 查询指定行数据
     *
     * @param offset 查询起始位置
     * @param limit 查询条数
     * @return 对象列表
     */
    List<WebModule> queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit);


    /**
     * 通过实体作为筛选条件查询
     *
     * @param webModule 实例对象
     * @return 对象列表
     */
    List<WebModule> queryAll(WebModule webModule);

    /**
     * 新增数据
     *
     * @param webModule 实例对象
     * @return 影响行数
     */
    int insert(WebModule webModule);

    /**
     * 修改数据
     *
     * @param webModule 实例对象
     * @return 影响行数
     */
    int update(WebModule webModule);

    /**
     * 通过主键删除数据
     *
     * @param moduleId 主键
     * @return 影响行数
     */
    int deleteById(Integer moduleId);

    /**
     *
     * @Description:
     * 获取child moduleID
     * @auther: 小松
     * @date: 13:43 2020/6/19
     * @param: [moduleId]
     * @return: void
     *
     */
    ArrayList<Integer> getChildModuleId(ArrayList<Integer> moduleId);


    /**
     *
     * @Description:
     * 根据ChildID获取全部该角色全部Module
     * @auther: 小松
     * @date: 16:04 2020/6/19
     * @param: []
     * @return: java.util.ArrayList<cn.web.web_module.entity.WebModule>
     *
     */
    ArrayList<WebModule> getModule(ArrayList<Integer> childModuleId);


    /**
     *
     * @Description: 查找全部的前端module
     *
     * @auther: 张松
     * @date: 15:26 2020/7/28
     * @param: []
     * @return: java.util.ArrayList<cn.web.web_module.entity.WebModule>
     *
     */
    List<WebModule> selectAllModule();
}